#ifndef CVPLUGININTERFACE_H
#define CVPLUGININTERFACE_H

#include <QObject>
#include <QString>
#include <QWidget>



#include "opencv2/opencv.hpp"

class CvPluginInterface
{

public:
    virtual ~CvPluginInterface() {}
    virtual QString title(void) = 0;
    virtual QString version(void) = 0;
    virtual QString description(void) = 0;
    virtual QString help(void) = 0;
    virtual void setupUi(QWidget *parent) = 0;
    virtual void processImage(const cv::Mat & inputImage, cv::Mat & outputImage) = 0;

};

#define CVPLUGININTERFACE_IID "com.computervision.cvplugininterface"
Q_DECLARE_INTERFACE(CvPluginInterface, CVPLUGININTERFACE_IID)

#endif // CVPLUGININTERFACE_H
